Mat ,string,char数组之间转换 您所在的位置:网站首页 c++ char数组转为string Mat ,string,char数组之间转换

Mat ,string,char数组之间转换

2023-09-04 07:01| 来源: 网络整理| 查看: 265

char数组与 string之间的转换 //字符数组转化成string类型 char ch [] = “ABCDEFG”; string str(ch);//也可string str = ch;

//将string类型转换为字符数组 char buf[10]; string str(“ABCDEFG”); strcpy_s(buf, str.c_str());

string 转Mat std::vector vec_data(image_string.c_str(), image_string.c_str() +image_string.size()); cv::Mat dst2 = cv::imdecode(vec_data, CV_LOAD_IMAGE_UNCHANGED);

char数组转Mat //char先转string,string再转Mat char modelImage[MAX_MODEL_IMAGE_SIZE]; int modelImageSize = MAX_MODEL_IMAGE_SIZE;

string str2(modelImage, modelImageSize); std::vector vec_data1(str2.c_str(), str2.c_str() + str2.size()); cv::Mat dst21= cv::imdecode(vec_data1, CV_LOAD_IMAGE_UNCHANGED);

Mat 转string std::vector buff; cv::imencode(".bmp", load_image, buff); std::string image_string(reinterpret_cast(&buff[0]), buff.size());

Mat 转char数组 char modelImage[MAX_MODEL_IMAGE_SIZE]; //char数组 int modelImageSize ;//数组大小 std::vector buff;

cv::imencode(".bmp", load_image, buff); memset(modelImage, 0, MAX_MODEL_IMAGE_SIZE); memcpy(modelImage, reinterpret_cast(&buff[0]), buff.size()); modelImageSize = buff.size();

以上转自:https://blog.csdn.net/weixin_42112458/article/details/83117305

当char数组中存储的数据是图片数据时,用上面的“char数组转string”,再从“string转Mat”后,用imshow显示图片时发生崩溃。 解决方法: char *modelImage;//图片数据 int length;//数据长度

std::vector vec_data; vec_data.insert(vec_data.end(), modelImage, modelImage + length); cv::Mat dst = cv::imdecode(vec_data, CV_LOAD_IMAGE_UNCHANGED);

imshow(“dst”, dst);

另:图片字节数组为什么必须进行base64编码后才能传输呢? http协议可以传输二进制数据(浏览器里面的图片、视频、音频都是二进制数据),问题是传输的时候必须保证字节不会改变。你直接将图片的字节转化为一个字符串一般是不行的,除非使用的字符集在0~255之间全部有对应的字符,否则就会导致某些字节转换错误,那么客户端所收到的就不再是原来的那些字节了。 base64之所以可以,是因为编码之后的字符都落在ASCII区间,而ASCII是所有字符编码都会支持的,因此可以正确传输和还原。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有